/**
 * 尚待完善的功能：
 * 1) 定制自己的弹出框；
 * 2)xx 从页面读取成绩到插件中TexArea区域【重要】；
 * 3) 对用户的提示信息要允许用户拷贝（同定制自己的弹出框）;
 * 4) 扩展到Google Chrome下【重要】；
 * 5)xx 添加对本地html页面的支持【次重要】；
 * 6) 插件界面在网页中和插件形式下的显式不一致：主要是最后一行“将360浏览器设置为极速模式”
 */

/*******************************************
 * 与页面之间的交互
********************************************/
function SendMsg2Web(cmd, x, hFunc){
	chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
		chrome.tabs.sendMessage(tabs[0].id, {action: cmd, data: x}, hFunc);
	});
}

function Inject(){
	chrome.tabs.executeScript(null, {file: "jquery-3.2.1.min.js"});
	chrome.tabs.executeScript(null, {file: "WebTable.js"});
	chrome.tabs.executeScript(null, {file: "WebScore.js"});
	chrome.tabs.executeScript(null, {file: "WebAction.js"});
}

// 记录尝试向页面注入脚本的次数
var sentry = 0;
// 向页面注入监视变量，避免向页面重复添加相同的消息监听
chrome.tabs.executeScript(null, {code: 'var bAllowAddWebListener = true;'});
function TryStartScoreAid(){
	// 向页面发送测试消息
	SendMsg2Web('TestMsg', '', function(response) {
		try{
			// 检查页面是否对测试消息有响应
			response.data;
			StartScoreAid();
		}catch(err){
			console.log(err);
			// 检查尝试向页面注入脚本的次数，只允许尝试两次
			if(++sentry == 3){
				alert('非成绩单页面，无法使用成绩助手（JS脚本注入失败）！');
				return;
			}
			// 向页面注入脚本
			Inject();
			// 递归检查向页面注入脚本是否成功
			TryStartScoreAid();
		}
	});
}

TryStartScoreAid();

